home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / SASETUP.MSI / F77658_id_prop.asp < prev    next >
Encoding:
Text File  |  2003-02-21  |  45.6 KB  |  1,475 lines

  1. <%@ Language=VBScript   %>
  2. <%    Option Explicit     %>
  3. <% 
  4.     '-------------------------------------------------------------------------
  5.     ' id_prop.asp: Page for changing the Device Name and Domain Name
  6.     '
  7.     ' Copyright (c) Microsoft Corporation.  All rights reserved. 
  8.     '
  9.     ' Date            Description
  10.     ' 21-Jul-2000    Created date
  11.     ' 05-Mar-2001    Modified date
  12.     ' 24-Mar-2001    Modified date
  13.     '-------------------------------------------------------------------------
  14. %>
  15.     <!-- #include virtual="/admin/inc_framework.asp" -->
  16.     <!-- #include file="loc_deviceid.asp" -->
  17. <%
  18.     '-------------------------------------------------------------------------
  19.     ' Form Variables
  20.     '-------------------------------------------------------------------------
  21.     Dim F_strDeviceName          'Device Name from the form
  22.     Dim F_strAppleTalkName      'Name of Computer in Apple Talk
  23.     Dim F_strNetWareName      'Name of Computer in NetWare
  24.     Dim F_strWorkGroup          'Workgroup Name
  25.     Dim F_strDomain              'Domain Name
  26.     Dim F_strDefaultDNS          'Default DNS
  27.     Dim F_strUserName          'User Name
  28.     Dim F_strPassword          'Password
  29.     Dim F_strRadio              'Radio button value(Workgroup/Domain)
  30.     Dim F_strOriginalStatus      'variable for storing original status of
  31.                               'the machine(Workgroup/Domain)
  32.     Dim F_strRebootState      'Indicate if Reboot required or not    
  33.     
  34.     '-------------------------------------------------------------------------
  35.     ' Global Variables
  36.     '-------------------------------------------------------------------------
  37.     Dim page                  'Variable that receives the output page object when 
  38.                               'creating a page 
  39.     Dim rc                      'Return value for CreatePage 
  40.     Dim G_bAppleTalkInstalled 'Indicate if AppleTalk is installed or not
  41.     Dim G_bNetWareInstalled      'Indicate if NetWare is installed or not    
  42.             
  43.     '-------------------------------------------------------------------------
  44.     ' Error constants
  45.     '-------------------------------------------------------------------------
  46.     Const N_DUPLICATECOMPUTERNAME_ERRNO1                = &H800708B0
  47.     Const N_DUPLICATECOMPUTERNAME_ERRNO2                = &H80070034
  48.     Const N_INVALIDDOMAIN_ERRNO                            = &H8007054B
  49.     Const N_DOMAININVALIDDOMAINPERMISSIONDENIES_ERRNO    = 70
  50.     Const N_INVALIDCREDENTIALS_ERRNO                    = &H8007052E
  51.     Const N_DOMAININVALIDDOMAIN_ERRNO                    = &H80070520
  52.     Const N_UNEXPECTED_COMPUTERNAMEERROR                = &H8007092F
  53.     Const N_DNSNAMEINVALID_ERRNO                        = 5
  54.     Const N_DOMAINNAMESYSTAX_ERRNO                        = &H8007007B
  55.     Const N_UNSPECIFIED_ERRNO                            = &H80004005
  56.     
  57.     Const CONST_APPLETALK_SERVICENAME                    ="MacFile"
  58.     Const CONST_NETWARE_SERVICENAME                        ="FPNW"
  59.     Const CONST_HTTPS_OFF                                ="OFF"
  60.     Const CONST_YES                                        ="Yes"
  61.     Const CONST_NO                                        ="No"
  62.     Const CONST_WORKGROUP                                ="Workgroup"
  63.     Const CONST_DOMAIN                                    ="Domain"
  64.     
  65.     Const CONST_APPLETALK_REGKEYPATH                    ="SYSTEM\CurrentControlSet\Services\MacFile\Parameters"
  66.     Const CONST_NETWARE_REGKEYPATH                        ="SYSTEM\CurrentControlSet\Services\FPNW\Parameters"
  67.     
  68.     rc = SA_CreatePage(L_TASKTITLE_TEXT, "", PT_PROPERTY, page)
  69.     
  70.     if rc = SA_NO_ERROR then
  71.         Call SA_ShowPage(page)
  72.     End if    
  73.     
  74.     
  75.     '-------------------------------------------------------------------------
  76.     'Function:                OnInitPage()
  77.     'Description:            Called to signal first time processing for this page.
  78.     '                        Used to do first time initialization tasks
  79.     'Input Variables:        PageIn,EventArg
  80.     'Output Variables:        PageIn,EventArg
  81.     'Returns:                True/False
  82.     'Global Variables:        F_strRebootState
  83.     '-------------------------------------------------------------------------    
  84.     Public Function OnInitPage(ByRef pageIn, ByRef EventArg)
  85.                 
  86.         On Error Resume Next
  87.         Err.Clear
  88.     
  89.         Call GetSystemSettings()
  90.         
  91.         Call AppleTalkNetWare()        
  92.         
  93.         Call GetAppleTalkNetWareSettings()
  94.         
  95.         F_strRebootState = CONST_NO
  96.                 
  97.         OnInitPage = TRUE
  98.  
  99.     End Function     'End of Set Variables From System Function
  100.     
  101.     '-------------------------------------------------------------------------
  102.     'Function:                OnServePropertyPage()
  103.     'Description:            Called when the page needs to be served.Use this 
  104.     '                        method to serve content
  105.     'Input Variables:        PageIn,EventArg
  106.     'Output Variables:        None
  107.     'Returns:                True/False
  108.     'Global Variables:        None
  109.     '-------------------------------------------------------------------------            
  110.     Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
  111.         
  112. %>
  113.  
  114.         <script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js"></script>
  115.         <script language="JavaScript">
  116.  
  117.         var strTemp = "<%=server.HTMLEncode(F_strRadio)%>";
  118.         var bAppleDeviceNameEqual            = false;
  119.         var bNetWareDeviceNameEqual            = false;
  120.         var strAppleTalkonLoad;    
  121.         var strNetWareonLoad;            
  122.         var nNetWareNameLen;
  123.         
  124.         // used as constants
  125.         var CONST_APPLETALKNETWARENAME        = 1;
  126.         var CONST_SANAME                    = 2;
  127.         var CONST_DNSDOMAINNAME                = 3;
  128.         var CONST_USERNAME                    = 4;
  129.         var CONST_WORKGROUPNAME                = 5;
  130.         var CONST_DOMAIN                    = "Domain";
  131.         
  132.         //Init Function
  133.         function Init()
  134.         {
  135.             var objDevicename = document.frmTask.txtdevicename;
  136.             var strDeviceName = objDevicename.value;
  137.             var strNetWareSliced
  138.                         
  139.             //If AppleTalk Installed        
  140.             "<%IF G_bAppleTalkInstalled = True then %>"
  141.             
  142.                 strAppleTalkonLoad = document.frmTask.txtappletalkname.value
  143.                 
  144.                 //Check if Windows Device Name and AppleTalk DeviceName is the same
  145.                 if (Trim(strDeviceName).toUpperCase() == Trim(strAppleTalkonLoad).toUpperCase())
  146.                 {
  147.                     bAppleDeviceNameEqual = true
  148.                 }
  149.                                             
  150.             "<%end if %>"
  151.             
  152.             //If NetWare Installed
  153.             "<%IF G_bNetWareInstalled = True then %>"
  154.             
  155.                 strNetWareonLoad = document.frmTask.txtnetwarename.value
  156.                                 
  157.                 nNetWareNameLen = Trim(strNetWareonLoad).length
  158.                 strNetWareSliced = strNetWareonLoad.slice(0,nNetWareNameLen - 3)
  159.                             
  160.                 //Check if Windows Device Name and NetWare DeviceName is the same
  161.                 if (Trim(strDeviceName).toUpperCase() == Trim(strNetWareSliced).toUpperCase())
  162.                 {
  163.                     bNetWareDeviceNameEqual = true
  164.                 }
  165.                     
  166.             "<%end if %>"
  167.                         
  168.             //checking whether for the first time or not
  169.             if(Trim(strTemp)=="")
  170.             {
  171.                 //Selects radiobutton value from originalstatus(Machine)
  172.                 var temp_strOriginalStatus;
  173.                 temp_strOriginalStatus=document.frmTask.hdnOriginalStatus.value;
  174.             }
  175.             else
  176.             {
  177.                 temp_strOriginalStatus=strTemp;
  178.                 
  179.             }
  180.         
  181.             //checking the Radio button ( domain or workgroup)
  182.             if(temp_strOriginalStatus.toUpperCase()==CONST_DOMAIN.toUpperCase())
  183.             {
  184.                 document.frmTask.radiodomainorworkgroup[1].checked=true;
  185.                 document.frmTask.txtworkgroup.style.backgroundColor="lightgrey";
  186.         
  187.                 if(strTemp!="")
  188.                 {
  189.                     EnableUserPasswordControls();
  190.                     document.frmTask.txtdomainusername.style.backgroundColor="";
  191.                     document.frmTask.pwdomainuserpw.style.backgroundColor="";
  192.                 }
  193.             }
  194.             else
  195.             {
  196.                 document.frmTask.radiodomainorworkgroup[0].checked=true;
  197.                 document.frmTask.txtdomain.style.backgroundColor="lightgrey";
  198.             }
  199.  
  200.             if(document.frmTask.txtdomain.value =="")
  201.             {
  202.                 document.frmTask.txtworkgroup.disabled=false;
  203.                 document.frmTask.txtdomain.disabled      =true;
  204.             }
  205.             else
  206.             {
  207.                 document.frmTask.txtworkgroup.disabled=true;
  208.                 document.frmTask.txtdomain.disabled   =false;
  209.             }
  210.  
  211.             //Getting the initial focus to Devicename
  212.             document.frmTask.txtdevicename.focus();
  213.             
  214.              SetPageChanged(false);
  215.     
  216.         } /* end of Init */
  217.  
  218.         // validates user entry
  219.         function ValidatePage()
  220.         {    
  221.             var objDevicename        = document.frmTask.txtdevicename;
  222.             var strDeviceName        = objDevicename.value;
  223.             var objWorkgroup        = document.frmTask.txtworkgroup;
  224.             var strWorkGroup        = objWorkgroup.value;
  225.             var objDefaultdns        = document.frmTask.txtdefaultdns;
  226.             var strDefaultDNS        = objDefaultdns.value;
  227.             var objDomain            = document.frmTask.txtdomain;
  228.             var strDomain            = objDomain.value;
  229.             var objUser                = document.frmTask.txtdomainusername;
  230.             var strUser                = objUser.value;
  231.             var arrDomainUser        
  232.             var strDomainUser
  233.             
  234.             strDeviceName = RTrimtext(LTrimtext(strDeviceName))
  235.             strDefaultDNS = RTrimtext(LTrimtext(strDefaultDNS))
  236.             strWorkGroup  = RTrimtext(LTrimtext(strWorkGroup))
  237.             strDomain     = RTrimtext(LTrimtext(strDomain))
  238.             strUser          = RTrimtext(LTrimtext(strUser))    
  239.             
  240.             //Validating for empty Hostname
  241.             if(Trim(strDeviceName).length<=0)
  242.             {
  243.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DEVICENAMEBLANK_ERRORMESSAGE))%>');
  244.                 objDevicename.onkeypress=ClearErr;
  245.                 selectFocus(objDevicename);
  246.                 return false;
  247.             }
  248.         
  249.             //Validating for invalid characters in Hostname
  250.             if (!IsComputerNameValid(strDeviceName))
  251.             {
  252.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINDEVICENAME_ERRORMESSAGE))%>')
  253.                 objDevicename.onkeypress=ClearErr;
  254.                 selectFocus(objDevicename);
  255.                 return false;
  256.             }
  257.             
  258.             //Validating for numbers in Hostname
  259.             if(!isNaN(strDeviceName))
  260.             {
  261.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DEVICENAMEISNUMBER_ERRORMESSAGE))%>');
  262.                 objDevicename.onkeypress=ClearErr;
  263.                 selectFocus(objDevicename);
  264.                 return false;
  265.             }
  266.             
  267.             // Validating for invalid characters in DNS Suffix
  268.             if (!IsDNSNameValid(strDefaultDNS))
  269.             {
  270.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINDNSSUFFIX_ERRORMESSAGE))%>')
  271.                 objDefaultdns.onkeypress=ClearErr;
  272.                 selectFocus(objDefaultdns);
  273.                 return false;
  274.             }
  275.             
  276.             //Validating for numbers in DNS suffix
  277.             if(Trim(strDefaultDNS).length>0 && !isNaN(strDefaultDNS))
  278.             {
  279.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DNSSUFFIXISNUMBER_ERRORMESSAGE))%>');
  280.                 objDefaultdns.onkeypress=ClearErr;
  281.                 selectFocus(objDefaultdns);
  282.                 return false;
  283.             }
  284.  
  285.             //Validating for empty Workgroup
  286.             if(document.frmTask.radiodomainorworkgroup[0].checked==true &&
  287.               Trim(strWorkGroup)=="")
  288.             {
  289.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_BLANKWORKGROUP_ERRORMESSAGE))%>');
  290.                 objWorkgroup.onkeypress=ClearErr;
  291.                 selectFocus(objWorkgroup);
  292.                 return false;
  293.             }
  294.             
  295.             // Validating for invalid characters in Workgroup
  296.             if ((!checkKeyforValidCharacters(strWorkGroup,CONST_WORKGROUPNAME))&&
  297.                frmTask.radiodomainorworkgroup[0].checked==true)
  298.             {
  299.                SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINWORKGROUP_ERRORMESSAGE))%>');
  300.                objWorkgroup.onkeypress=ClearErr;
  301.                selectFocus(objWorkgroup);
  302.                return false;
  303.             }
  304.  
  305.             //Validating for empty Domain
  306.             if(document.frmTask.radiodomainorworkgroup[1].checked==true &&
  307.               Trim(strDomain)=="")
  308.             {
  309.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_DOMIANNAMEBLANK_ERRORMESSAGE))%>');
  310.                 objDomain.onkeypress=ClearErr;
  311.                 selectFocus(objDomain);
  312.                 return false;
  313.             }
  314.  
  315.             // Validating for invalid characters in Domain
  316.             if ((!checkKeyforValidCharacters(strDomain,CONST_DNSDOMAINNAME))&&
  317.                (frmTask.radiodomainorworkgroup[1].checked==true))
  318.             {
  319.                SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINDOMAIN_ERRORMESSAGE))%>');
  320.                objDomain.onkeypress=ClearErr;
  321.                selectFocus(objDomain);
  322.                return false;
  323.             }
  324.                             
  325.             // Validating for invalid characters in User
  326.             if ( (!checkKeyforValidCharacters(strUser,CONST_USERNAME)) &&
  327.                  (document.frmTask.radiodomainorworkgroup[1].checked==true))                
  328.             {    
  329.                 SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINUSERNAME_ERRORMESSAGE))%>');
  330.                 objUser.onkeypress=ClearErr;
  331.                 selectFocus(objUser);
  332.                 return false;
  333.             }
  334.                             
  335.             //Function checks for same Host name and Workgroup
  336.             if((document.frmTask.radiodomainorworkgroup[0].checked==true) &&
  337.                 (strWorkGroup.toUpperCase()==strDeviceName.toUpperCase()))
  338.             {
  339.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_HOSTNAMEANDWORKGROUPNAMESAME_ERRORMESSAGE))%>');                    objDevicename.onkeypress=ClearErr;
  340.                     objWorkgroup.onkeypress=ClearErr;
  341.                     selectFocus(objDevicename);
  342.                     return false;
  343.             }
  344.             
  345.                         
  346.             //Function checks for user name and password when domain checked
  347.             //and the values of any field changed
  348.  
  349.             if((document.frmTask.radiodomainorworkgroup[1].checked==true)
  350.                &&
  351.                 (Trim(strUser)=="") && ((Trim(strDomain) !="<%=F_strDomain%>")
  352.                 ||(strDeviceName !="<%=F_strDeviceName%>")))
  353.             {
  354.                     EnableUserPasswordControls();
  355.                     document.frmTask.txtdomainusername.style.backgroundColor="";
  356.                     document.frmTask.pwdomainuserpw.style.backgroundColor="";
  357.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_NOTES_HTML_TEXT))%>');
  358.                     objDevicename.onkeyup=ClearErr;
  359.                     objDefaultdns.onkeyup=ClearErr;
  360.                     objDomain.onkeyup=ClearErr;
  361.                     objWorkgroup.onkeypress=ClearErr;
  362.                     objUser.onkeypress=ClearErr;
  363.                     selectFocus(objUser);
  364.                     return false;
  365.             }
  366.             
  367.             "<%IF G_bAppleTalkInstalled = True then %>"                
  368.             
  369.                  var objAppleTalkName    = document.frmTask.txtappletalkname;
  370.                 var strAppleTalkName    = objAppleTalkName.value;
  371.                 
  372.                 strAppleTalkName = RTrimtext(LTrimtext(strAppleTalkName))
  373.                         
  374.                 //Validating for invalid characters in AppleTalk Hostname
  375.                 if (!checkKeyforValidCharacters(strAppleTalkName,CONST_APPLETALKNETWARENAME))
  376.                 {
  377.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINAPPLETALKNAME_ERRORMESSAGE))%>')
  378.                     objAppleTalkName.onkeypress=ClearErr;
  379.                     selectFocus(objAppleTalkName);
  380.                     return false;
  381.                 }
  382.                                         
  383.                 //Validating for empty Hostname
  384.                 if(Trim(strAppleTalkName)=="")
  385.                 {
  386.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_APPLETALKNAMEBLANK_ERRORMESSAGE))%>');
  387.                     objAppleTalkName.onkeypress=ClearErr;
  388.                     selectFocus(objAppleTalkName);
  389.                     return false;
  390.                 }
  391.             
  392.                 //Validating for numbers in AppleTalk Hostname
  393.                 if(!isNaN(strAppleTalkName))
  394.                 {
  395.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINAPPLETALKNAME_ERRORMESSAGE))%>');
  396.                     objAppleTalkName.onkeypress=ClearErr;
  397.                     selectFocus(objAppleTalkName);
  398.                     return false;
  399.                 }
  400.             
  401.             "<%end if%>"
  402.             
  403.             "<%IF G_bNetWareInstalled = True then %>"
  404.                 
  405.                 var objNetWareName        = document.frmTask.txtnetwarename;
  406.                 var strNetWareName        = objNetWareName.value;
  407.                 
  408.                 strNetWareName = RTrimtext(LTrimtext(strNetWareName))
  409.                     
  410.                 //Validating for invalid characters in NetWare Hostname
  411.                 if (!checkKeyforValidCharacters(strNetWareName,CONST_APPLETALKNETWARENAME)) 
  412.                 {
  413.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINNETWARENAME_ERRORMESSAGE))%>')
  414.                     objNetWareName.onkeypress=ClearErr;
  415.                     selectFocus(objNetWareName);
  416.                     return false;
  417.                 }
  418.             
  419.                 //Validating for empty NetWare Hostname
  420.                 if(Trim(strNetWareName)=="")
  421.                 {
  422.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_NETWARENAMEBLANK_ERRORMESSAGE))%>');
  423.                     objNetWareName.onkeypress=ClearErr;
  424.                     selectFocus(objNetWareName);
  425.                     return false;
  426.                 }
  427.  
  428.                 //Validating for numbers in NetWare Hostname
  429.                 if(!isNaN(strNetWareName))
  430.                 {
  431.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_INVALIDCHARACTERINNETWARENAME_ERRORMESSAGE))%>');
  432.                     objNetWareName.onkeypress=ClearErr;
  433.                     selectFocus(objNetWareName);
  434.                     return false;
  435.                 }
  436.             
  437.                 //Validating for the Windows Hostname and NetWare Hostname
  438.                 if (strNetWareName.toUpperCase() == strDeviceName.toUpperCase())
  439.                 {    
  440.                     SA_DisplayErr('<%=Server.HTMLEncode(SA_EscapeQuotes(L_WINDOWSNETWAREEQUALNAME_ERRORMESSAGE))%>');
  441.                     selectFocus(objNetWareName);
  442.                     return false;
  443.                 }
  444.             
  445.             "<%end if%>"
  446.  
  447.         return true;
  448.         }//end of Validate page*/
  449.  
  450.     
  451.         //Setdata Function for Framework
  452.         function SetData()
  453.         {
  454.             //Disabling Cancel button when user selects OK button
  455.             DisableCancel()
  456.             
  457.             "<%IF G_bAppleTalkInstalled = True then %>"
  458.             
  459.             if ( (document.frmTask.txtappletalkname.value).toUpperCase() != (strAppleTalkonLoad).toUpperCase())
  460.             {
  461.                 document.frmTask.hdnRebootState.value = "Yes"
  462.             }
  463.                     
  464.             "<%end if %>"
  465.             
  466.             "<%IF G_bNetWareInstalled = True then %>"
  467.                         
  468.             if ( (document.frmTask.txtnetwarename.value).toUpperCase() != (strNetWareonLoad).toUpperCase() )
  469.             {
  470.                 document.frmTask.hdnRebootState.value = "Yes"
  471.             }
  472.             
  473.             "<%end if %>"
  474.                                 
  475.         }
  476.  
  477.         //This function Disables and enables Workgroup and
  478.         //Domain when clicked on the respective radiobuttons
  479.         function DisableWorkandDomaingroup(objVal)
  480.         {
  481.             SetPageChanged(true);
  482.         
  483.             strVal=objVal.value; //assigning the value
  484.             if(strVal=="domain")
  485.             {
  486.                 EnableUserPasswordControls();
  487.                 document.frmTask.txtdomain.disabled    = false;
  488.                 document.frmTask.txtworkgroup.disabled = true;
  489.                 document.frmTask.txtworkgroup.style.backgroundColor="lightgrey";
  490.                 document.frmTask.txtdomain.style.backgroundColor="";
  491.                 document.frmTask.txtdomain.focus();
  492.                 document.frmTask.txtdomain.select();
  493.             }
  494.             else
  495.             {
  496.                 document.frmTask.txtworkgroup.disabled = false;
  497.                 document.frmTask.txtdomain.disabled    = true;
  498.                 document.frmTask.txtworkgroup.focus();
  499.                 document.frmTask.txtworkgroup.select();
  500.                 document.frmTask.txtdomainusername.disabled= true;
  501.                 document.frmTask.pwdomainuserpw.disabled= true;
  502.                 document.frmTask.txtworkgroup.style.backgroundColor="";
  503.                 document.frmTask.txtdomain.style.backgroundColor="lightgrey";
  504.                 document.frmTask.txtdomainusername.style.backgroundColor="lightgrey";
  505.                 document.frmTask.pwdomainuserpw.style.backgroundColor="lightgrey";
  506.             }
  507.         }
  508.  
  509.  
  510.         function IsComputerNameValid(strName)
  511.         {
  512.             try
  513.             {
  514.                 var pattern = "[^A-Z0-9-]";
  515.                 var exp = new RegExp(pattern, "i");
  516.                 var rc = exp.test(strName);
  517.  
  518.                 if ( rc == null )
  519.                 {
  520.                     return false;
  521.                 }
  522.                 else
  523.                 {
  524.                     //
  525.                     // If the test was successful then the 
  526.                     // input contained invalid data.
  527.                     return ( rc ? false : true);
  528.                 }
  529.             }
  530.             catch(oException)
  531.             {
  532.                 return false;
  533.             }
  534.     
  535.         }
  536.  
  537.  
  538.         function IsDNSNameValid(strName)
  539.         {
  540.             try
  541.             {
  542.                 var pattern = "[^A-Z0-9-\.]";
  543.                 var exp = new RegExp(pattern, "i");
  544.                 var rc = exp.test(strName);
  545.  
  546.                 if ( rc == null )
  547.                 {
  548.                     return false;
  549.                 }
  550.                 else
  551.                 {
  552.                     //
  553.                     // If the test was successful then the 
  554.                     // input contained invalid data.
  555.                     return ( rc ? false : true);
  556.                 }
  557.             }
  558.             catch(oException)
  559.             {
  560.                 return false;
  561.             }
  562.     
  563.         }
  564.  
  565.         
  566.         //To check for Invalid Characters
  567.         function checkKeyforValidCharacters(strName,nType)
  568.         {    
  569.             var nLength = strName.length;
  570.             var nFwdslashCount = 0
  571.             if (nLength > 0)
  572.             {        
  573.                 var colonvalue;                            
  574.                 colonvalue = 0;
  575.                 //Validating DNS and Domain names
  576.                 if (nType == CONST_DNSDOMAINNAME)
  577.                 {
  578.                     for(var i=0; i<nLength;i++)
  579.                     {
  580.                         charAtPos = strName.charCodeAt(i);    
  581.                                                 
  582.                         if(charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 32)
  583.                         {    
  584.                             return false 
  585.                         }
  586.                         
  587.                     }
  588.                 }
  589.                 else
  590.                 {    
  591.                     //Validating Workgroup name
  592.                     if (nType == CONST_WORKGROUPNAME)
  593.                     {
  594.                     
  595.                         for(var i=0; i<nLength;i++)
  596.                         {
  597.                             charAtPos = strName.charCodeAt(i);    
  598.                         
  599.                             if(charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 )
  600.                             {                        
  601.                                 return false 
  602.                             }
  603.                         }
  604.                     }
  605.                     else
  606.                     {
  607.                         //Validating User name
  608.                         if(nType == CONST_USERNAME)
  609.                         {
  610.                             for(var i=0; i<nLength;i++)
  611.                             {
  612.                                 charAtPos = strName.charCodeAt(i);    
  613.                             
  614.                                 if (charAtPos == 47 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 46)
  615.                                 {                        
  616.                                     return false
  617.                                 }
  618.                                 if (charAtPos == 92)
  619.                                 {
  620.                                     nFwdslashCount = nFwdslashCount + 1
  621.                                     if (nFwdslashCount > 1 )    
  622.                                     {
  623.                                         return false
  624.                                     }
  625.                                 }
  626.                             }
  627.                                 
  628.                         }
  629.                         else
  630.                         {
  631.                             //Validating for AppleTalk and NetWare names
  632.                             if(nType == CONST_APPLETALKNETWARENAME)
  633.                             {
  634.                                 for(var i=0; i<nLength;i++)
  635.                                 {
  636.                                     charAtPos = strName.charCodeAt(i);    
  637.                                 
  638.                                     if (charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 46 || charAtPos == 32)
  639.                                     {                        
  640.                                         return false
  641.                                     }
  642.                                 }
  643.                                 
  644.                             }
  645.                             else
  646.                             {
  647.                                 //Validation for Server appliance name
  648.                                 if(nType == CONST_SANAME)
  649.                                 {
  650.                                     for(var i=0; i<nLength;i++)
  651.                                     {
  652.                                         charAtPos = strName.charCodeAt(i);    
  653.                                                                             
  654.                                         if (charAtPos == 47 || charAtPos == 92 || charAtPos ==58 || charAtPos == 42 || charAtPos == 63 || charAtPos == 34 || charAtPos == 60 || charAtPos == 62 || charAtPos == 124 || charAtPos == 91 || charAtPos == 93 || charAtPos == 59 || charAtPos == 43 || charAtPos == 61 || charAtPos == 44 || charAtPos == 46 || charAtPos == 32 || charAtPos == 33 || charAtPos == 39)
  655.                                         {                        
  656.                                             return false
  657.                                         }
  658.                                     }
  659.                                 }
  660.                                 else
  661.                                 {
  662.                                     for(var i=0; i<nLength;i++)
  663.                                     {
  664.                                         charAtPos = strName.charCodeAt(i);    
  665.                                         if(charAtPos == 58)
  666.                                         {                        
  667.                                             return false
  668.                                         }
  669.                                     }
  670.                                 }
  671.                             }        
  672.                         }        
  673.                     }
  674.                 }
  675.             }
  676.             return true
  677.         }                 
  678.     
  679.         //This Function enables the DomainUsername and Password
  680.         function EnableUserPasswordControls()
  681.         { 
  682.             if(document.frmTask.radiodomainorworkgroup[1].checked==true)
  683.             {    
  684.                 document.frmTask.txtdomainusername.disabled = false;
  685.                 document.frmTask.pwdomainuserpw.disabled    = false;
  686.                 document.frmTask.txtdomainusername.style.backgroundColor="";
  687.                 document.frmTask.pwdomainuserpw.style.backgroundColor="";
  688.             }
  689.         }
  690.         
  691.         //For Device Name Change
  692.         function OnDeviceNameChange()
  693.         {    
  694.             SetPageChanged(true);
  695.             EnableUserPasswordControls();
  696.             
  697.             "<%IF G_bAppleTalkInstalled = True then %>"
  698.                         
  699.                 if (bAppleDeviceNameEqual == true)
  700.                 {
  701.                     document.frmTask.txtappletalkname.value = document.frmTask.txtdevicename.value
  702.                 }
  703.             
  704.             "<%End If%>"
  705.             
  706.             "<%IF G_bNetWareInstalled = True then %>"
  707.             
  708.                 if (bNetWareDeviceNameEqual == true)
  709.                 {
  710.                     document.frmTask.txtnetwarename.value = document.frmTask.txtdevicename.value + "_NW"
  711.                 }
  712.             
  713.             "<%End If%>"
  714.                         
  715.         }
  716.         
  717.         //------------------------------------------------------------------------
  718.         // Function        :LTrimtext
  719.         // Description    :function to remove left trailing spaces 
  720.         // input        :String
  721.         // returns        :String
  722.         //------------------------------------------------------------------------
  723.         function LTrimtext(str)
  724.         {
  725.             var res="", i, ch, index;
  726.             x = str.length;
  727.             index = "false";
  728.             
  729.             for (i=0; i < str.length; i++)
  730.             {
  731.                 ch = str.charAt(i);
  732.                 if (index == "false")
  733.                 {
  734.                     if (ch != ' ')
  735.                     {
  736.                         index = "true";
  737.                         res = ch;
  738.                     }
  739.                 }
  740.                 else
  741.                 {
  742.                     res = res + ch;
  743.                 }     
  744.             }
  745.             return res;
  746.         }
  747.     
  748.         //------------------------------------------------------------------------
  749.         // Function        :RTrimtext
  750.         // Description    :function to remove right trailing spaces 
  751.         // input        :String
  752.         // returns        :String
  753.         //------------------------------------------------------------------------
  754.         function RTrimtext(str)
  755.         {
  756.             var res="", i, ch, index, j, k;
  757.             x = str.length;
  758.             index = "false";
  759.                     
  760.             if(x==0 || x==1) 
  761.                 return str;
  762.             
  763.             for(i=x; i >= 0; i--)
  764.             {
  765.                 ch = str.charAt(i);                        
  766.                 
  767.                 if (index == "false")
  768.                 {
  769.                     
  770.                     if( (ch == ' ') || (ch == '') )
  771.                     {
  772.                         continue;
  773.                     }
  774.                     else
  775.                     {                
  776.                         index = "true";                    
  777.                         j = i;        
  778.                     }
  779.                 }     
  780.                       
  781.                 if (index == "true")
  782.                 {
  783.                     for(k=0; k<=j; k++)
  784.                     {
  785.                         res = res + str.charAt(k);
  786.                     }                
  787.                     return res;
  788.                 }    
  789.                 
  790.             }    
  791.         }
  792.         </script>
  793.  
  794.         <table border="0" cellspacing="0"  cellpadding="0" width=50%>
  795.         
  796.             <tr>
  797.                 <td class="TasksBody" colspan="4">
  798.                     <%CheckForSecureSite()%>
  799.                     <br>
  800.                 </td>
  801.                 
  802.             </tr>            
  803.         
  804.             <tr>
  805.                 <td class="TasksBody" nowrap>
  806.                         <%=server.HTMLEncode(L_DEVICENAME_TEXT)%>
  807.                 </td>
  808.                 <td class="TasksBody" nowrap colspan="3">
  809.                          <input type="text" name="txtdevicename" class="FormField" onKeyUP="OnDeviceNameChange()" size="25" maxlength="63"
  810.                          value="<%=server.HTMLEncode(F_strDeviceName)%>" 
  811.                          >
  812.                 </td>
  813.             </tr>
  814.             <tr>
  815.                 <td class="TasksBody" nowrap>
  816.                     <%=server.HTMLEncode(L_DEFAULTDNS_TEXT)%>
  817.                 </td>
  818.                 <td class="TasksBody" nowrap colspan="3">
  819.                     <input type="text" name="txtdefaultdns" class="FormField" onChange="SetPageChanged(true);"  size="25" maxlength="155"
  820.                     value="<%=server.HTMLEncode(F_strDefaultDNS)%>" >
  821.                 </td>
  822.             </tr>
  823.             <tr>
  824.                 <td class="TasksBody" colspan="4">
  825.                     <hr>
  826.                 </td>
  827.             </tr>    
  828.             <tr>
  829.                 <td class="TasksBody" nowrap >
  830.                     <%=server.HTMLEncode(L_MEMBEROF_TEXT)%>
  831.                 </td>
  832.                 <td class="TasksBody" nowrap colspan="2" >
  833.                     <input type="radio" name="radiodomainorworkgroup" class="FormRadioButton"  value="workgroup"
  834.                     onClick="DisableWorkandDomaingroup(this)"  >
  835.                     <%=server.HTMLEncode(L_WORKGROUP_TEXT)%>
  836.                 </td>
  837.                 <td class="TasksBody" nowrap >
  838.                     <input type="text" name="txtworkgroup" class="FormField" onChange="SetPageChanged(true);" size="25" maxlength="15"
  839.                     value="<%=server.HTMLEncode(F_strWorkGroup)%>" >
  840.                 </td>
  841.             </tr>
  842.             <tr>
  843.                 <td class="TasksBody" nowrap>  
  844.                 </td>
  845.                 <td class="TasksBody" nowrap colspan="2">
  846.                     <input type="radio" name="radiodomainorworkgroup" class="FormRadioButton" value="domain"
  847.                      onClick="DisableWorkandDomaingroup(this);" >
  848.                     <%=server.HTMLEncode(L_DOMAIN_TEXT) %>
  849.                 </td>
  850.                 <td class="TasksBody" nowrap>
  851.                     <input type="text" name="txtdomain" class="FormField" onKeyUP="EnableUserPasswordControls();" size="25" maxlength="155"
  852.                      value="<%=server.HTMLEncode(F_strDomain)%>" >
  853.                 </td>
  854.             </tr>
  855.             <tr>
  856.                 <td class="TasksBody" nowrap> 
  857.                 </td>
  858.                 <td class="TasksBody" colspan="3">
  859.                     <%=Server.HTMLEncode(L_USERWITHPERMISSION_TEXT)%>
  860.                 </td>
  861.             </tr>
  862.             <tr>
  863.                 <td class="TasksBody" nowrap width="20%"> 
  864.                 </td>
  865.                 <td class="TasksBody" nowrap width="3%"> 
  866.                 </td>
  867.                 <td class="TasksBody" nowrap width="15%">
  868.                     <%=Server.HTMLEncode(L_ADMINUSERNAME_TEXT)%>
  869.                 </td>
  870.                 <td class="TasksBody" nowrap >
  871.                     <input type="text" class="FormField" name="txtdomainusername" onChange="SetPageChanged(true);" onKeyPress="ClearErr();" value="<%=server.HTMLEncode(F_strUserName)%>" size="25" maxlength="256" disabled style="background-color:lightgrey">
  872.                 </td>
  873.             </tr>
  874.             <tr>
  875.                 <td class="TasksBody" nowrap> 
  876.                 </td>
  877.                 <td class="TasksBody" nowrap> 
  878.                 </td>
  879.                 <td class="TasksBody" nowrap>
  880.                     <%=Server.HTMLEncode(L_ADMINPASSWORD_TEXT)%>
  881.                 </td>
  882.                 <td class="TasksBody" nowrap>
  883.                     <input type="password" name="pwdomainuserpw" class="FormField" onChange="SetPageChanged(true);" size="25" maxlength="35"  disabled style="background-color:lightgrey">
  884.                 </td>
  885.             </tr>
  886.             <tr>
  887.                 <td class="TasksBody" >
  888.                      
  889.                 </td>
  890.             </tr>
  891.  
  892.                 
  893.             <tr>
  894.                 <td class="TasksBody" colspan="4">
  895.                     <hr>
  896.                 </td>
  897.             </tr>
  898.             <% If G_bAppleTalkInstalled = True then %>
  899.             <tr>
  900.                 <td class="TasksBody" nowrap>
  901.                     <%=server.HTMLEncode(L_APPLETALKNAME_TEXT)%>
  902.                 </td>
  903.                 <td class="TasksBody" colspan="3">
  904.                     <input type="text" name="txtappletalkname" class="FormField" size="25" maxlength="31"
  905.                         value="<%=Server.HTMLEncode(F_strAppleTalkName)%>" >
  906.                 </td>    
  907.             </tr>            
  908.             <% End If %>
  909.             <% IF G_bNetWareInstalled = True then %>
  910.             <tr>
  911.                 <td class="TasksBody" nowrap>
  912.                     <%=server.HTMLEncode(L_NETWARENAME_TEXT)%>
  913.                 </td>
  914.                 <td class="TasksBody" colspan="3">
  915.                     <input type="text" name="txtnetwarename" class="FormField" size="25" maxlength="47"
  916.                         value="<%=Server.HTMLEncode(F_strNetWareName)%>" >
  917.                 </td>    
  918.             </tr>            
  919.             <% End If %>
  920.         </table>
  921.  
  922.         <input type="hidden" name="hdnOriginalStatus" value="<%=F_strOriginalStatus%>">
  923.         <input type="hidden" name="hdnRebootState" value="<%=F_strRebootState%>">
  924.                 
  925. <%
  926.         OnServePropertyPage = True
  927.     End Function
  928.     
  929.  
  930.     '-------------------------------------------------------------------------
  931.     'Function:                OnPostBackPage()
  932.     'Description:            Called to signal that the page has been posted-back.
  933.     'Input Variables:        PageIn, EventArg
  934.     'Output Variables:        PageIn, EventArg, F_(*)
  935.     'Returns:                True/False
  936.     'Global Variables:        F_(*)
  937.     '-------------------------------------------------------------------------
  938.     Public Function OnPostBackPage(ByRef PageIn,ByRef EventArg)
  939.     
  940.         F_strDeviceName        =    Trim(Request.Form("txtdevicename"))
  941.         F_strAppleTalkName    =    Trim(Request.Form("txtappletalkname"))
  942.         F_strNetWareName    =    Trim(Request.Form("txtnetwarename"))
  943.         F_strWorkGroup        =    Trim(Request.Form("txtworkgroup"))
  944.         F_strDomain            =    Trim(Request.Form("txtdomain"))
  945.         F_strDefaultDNS        =    Trim(Request.Form("txtdefaultdns"))
  946.         F_strUserName        =    Trim(Request.Form("txtdomainusername"))
  947.         F_strPassword        =    Trim(Request.Form("pwdomainuserpw"))
  948.         F_strRadio            =    Trim(Request.Form("radiodomainorworkgroup"))
  949.         F_strOriginalStatus    =    Trim(Request.Form("hdnOriginalStatus"))
  950.         F_strRebootState    =   Trim(Request.Form("hdnRebootState"))
  951.         
  952.         OnPostBackPage = TRUE
  953.                 
  954.     End Function
  955.  
  956.     
  957.     '-----------------------------------------------------------------------------
  958.     'Function:                OnSubmitPage()
  959.     'Description:            Called when the page has been submitted for processing.
  960.     '                        Use this method to process the submit request.
  961.     'Input Variables:        PageIn, EventArg
  962.     'Output Variables:        PageIn, EventArg
  963.     'Returns:                True/False
  964.     'Global Variables:        None
  965.     '-----------------------------------------------------------------------------
  966.     Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
  967.         
  968.         Dim objSystem                'System Object
  969.             
  970.         Set objSystem = CreateObject("comhelper.SystemSetting")
  971.                 
  972.         If not SetSystemSettings(objSystem) then
  973.             onSubmitPage = False
  974.             Set objSystem = nothing
  975.             Exit Function
  976.         End If 
  977.         
  978.         Call AppleTalkNetWare()
  979.             
  980.         If not IsRestartReq(objSystem) Then
  981.             onSubmitPage = False
  982.             Set    objSystem = nothing
  983.             Exit Function
  984.         End If
  985.         
  986.          Set objSystem = nothing
  987.          OnSubmitPage = True
  988.         
  989.     End Function
  990.  
  991.     '-------------------------------------------------------------------------
  992.     'Function:                OnClosePage()
  993.     'Description:            Called when the page is about to be closed.Use this
  994.     '                        method to perform clean-up processing
  995.     'Input Variables:        PageIn,EventArg
  996.     'Output Variables:        None
  997.     'Returns:                True/False
  998.     'Global Variables:        None
  999.     '-------------------------------------------------------------------------    
  1000.     Public Function OnClosePage(ByRef PageIn,ByRef EventArg)
  1001.     
  1002.         OnClosePage=TRUE
  1003.     
  1004.     End Function
  1005.     
  1006.     '-------------------------------------------------------------------------
  1007.     'Sub routine:            AppleTalkNetWare
  1008.     'Description:            To check whether required  services are installed or not
  1009.     'Input Variables:        None
  1010.     'Output Variables:        None
  1011.     'Returns:                None
  1012.     'Global Variables:        Out:G_bAppleTalkInstalled
  1013.     '                        Out:G_bNetWareInstalled    
  1014.     '                        In:CONST_APPLETALK_SERVICENAME
  1015.     '                        In:CONST_NETWARE_SERVICENAME                        
  1016.     '                        In:CONST_WMI_WIN32_NAMESPACE
  1017.     '                        In:L_(*)    
  1018.     '-------------------------------------------------------------------------    
  1019.     Sub AppleTalkNetWare()
  1020.         On Error Resume Next
  1021.         Err.Clear
  1022.         
  1023.         Dim objWMIConnection
  1024.         Dim strProtocol
  1025.         Dim strPath
  1026.         Dim strServerName
  1027.  
  1028.         Set objWMIConnection = getWMIConnection(CONST_WMI_WIN32_NAMESPACE)
  1029.         
  1030.         'Incase connection fails
  1031.         If Err.number <> 0 Then
  1032.             Call SA_ServeFailurePageEx(L_FAILEDTOGETWMICONNECTION_ERRORMESSAGE, mstrReturnURL )
  1033.             Exit Sub
  1034.         End If
  1035.     
  1036.         G_bAppleTalkInstalled = SA_IsServiceInstalled(CONST_APPLETALK_SERVICENAME)
  1037.         G_bNetWareInstalled = SA_IsServiceInstalled(CONST_NETWARE_SERVICENAME)
  1038.         
  1039.         Set objWMIConnection = nothing
  1040.                             
  1041.     End Sub    
  1042.     
  1043.     '-------------------------------------------------------------------------
  1044.     'Function:                GetSystemSettings
  1045.     'Description:            To get the System Settings using a Com Object
  1046.     'Input Variables:        None
  1047.     'Output Variables:        None
  1048.     'Returns:                None
  1049.     'Global Variables:        F_(*), L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE
  1050.     '                        L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE
  1051.     '-------------------------------------------------------------------------    
  1052.     Function GetSystemSettings()    
  1053.         On Error Resume Next
  1054.         Err.Clear
  1055.         
  1056.         Dim objSystem
  1057.         Dim objComputer
  1058.         
  1059.         Set objSystem = CreateObject("comhelper.SystemSetting")
  1060.         If Err.Number <> 0 Then
  1061.             Call SA_ServeFailurePageEx(L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE, mstrReturnURL) 
  1062.             Exit Function
  1063.         End If
  1064.         
  1065.         Set objComputer = objSystem.Computer
  1066.         
  1067.         If Err.Number <> 0 Then
  1068.             Call SA_ServeFailurePageEx(L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE, mstrReturnURL )
  1069.             Exit Function
  1070.         End If
  1071.         
  1072.         F_strDeviceName =  objComputer.ComputerName
  1073.         F_strDomain     =  objComputer.DomainName
  1074.         
  1075.         'Incase Domain returns null then an error number -2147467259
  1076.         If Err.number = N_UNSPECIFIED_ERRNO then
  1077.             Err.Clear
  1078.         End If    
  1079.         
  1080.         F_strWorkGroup  =  objComputer.WorkgroupName
  1081.         
  1082.         'Incase Workgroup returns null then an error number -2147467259
  1083.         If Err.number = N_UNSPECIFIED_ERRNO then
  1084.             Err.Clear
  1085.         End If                
  1086.         
  1087.         F_strDefaultDNS =  objComputer.FullQualifiedComputerName
  1088.         
  1089.         LTrim(F_strDomain)
  1090.         LTrim(F_strWorkGroup)
  1091.         
  1092.         'Assigning the original status(Domain/Workgroup)
  1093.          If LTrim(F_strDomain) <> "" Then
  1094.             F_strOriginalStatus    =    CONST_DOMAIN
  1095.         Else
  1096.             F_strOriginalStatus =    CONST_WORKGROUP
  1097.         End If
  1098.                 
  1099.         'Assigning the DNS value
  1100.         If IsNull(F_strDefaultDNS) = False Then
  1101.             Dim DNSlen, Devicelen
  1102.             DNSlen = Len(F_strDefaultDNS)
  1103.             Devicelen = Len(F_strDeviceName)
  1104.             DNSlen = DNSlen - Devicelen - 1
  1105.             If DNSlen < 0 Then
  1106.                 DNSlen = 0
  1107.             End If
  1108.             F_strDefaultDNS = Right(F_strDefaultDNS, DNSlen)
  1109.         End If
  1110.         
  1111.         Set objComputer = Nothing
  1112.         Set objSystem = Nothing
  1113.             
  1114.     End Function    
  1115.     
  1116.     '-------------------------------------------------------------------------
  1117.     'Function:                SetSystemSettings
  1118.     'Description:            To set the System Settings using a Com Object
  1119.     'Input Variables:        objSystem
  1120.     'Output Variables:        None
  1121.     'Returns:                True/False
  1122.     'Global Variables:        F_(*), L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE
  1123.     '                        L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE
  1124.     '                        L_LOGONINFOFAILED_ERRORMESSAGE
  1125.     '-------------------------------------------------------------------------    
  1126.     Function SetSystemSettings(objSystem)
  1127.         On Error Resume Next
  1128.         Err.Clear
  1129.         
  1130.         Dim objComputer
  1131.         
  1132.         SetSystemSettings = False
  1133.                 
  1134.         If Err.Number <> 0 Then
  1135.             SA_SetErrMsg L_ERROROCCUREDINCREATEOBJECT_ERRORMESSAGE  &_
  1136.                                      "( " & Hex(Err.number)& " )"
  1137.             objComputer = nothing
  1138.             Exit Function
  1139.         End If
  1140.         
  1141.         'get the computer object
  1142.         Set objComputer=objSystem.Computer
  1143.         If Err.Number <> 0 Then
  1144.         SA_SetErrMsg L_ERRORINGETTINGCOMPUTERSYSTEMOBJECT_ERRORMESSAGE &_
  1145.                                          "(" & Hex(Err.Number)& " )"
  1146.             objComputer = nothing
  1147.             Exit Function
  1148.         End If
  1149.         
  1150.         'Assigning the Host name
  1151.         objComputer.ComputerName=F_strDeviceName 
  1152.         
  1153.         'If DNS Suffix is not empty/If DNS Suffix is  empty 
  1154.         If F_strDefaultDNS <> "" Then        
  1155.             objComputer.FullQualifiedComputerName=F_strDeviceName & "."& F_strDefaultDNS
  1156.         Else                                
  1157.             objComputer.FullQualifiedComputerName=F_strDeviceName
  1158.         End If
  1159.                                     
  1160.         'Machine belongs to Workgroup
  1161.         'If F_strOriginalStatus = "workgroup" then        
  1162.         If ( UCase(F_strOriginalStatus) = UCase(CONST_WORKGROUP)) then        
  1163.             'Adding to Workgroup
  1164.             If (UCase(F_strRadio) = UCase(CONST_WORKGROUP)) then    
  1165.                 objComputer.workgroupName = F_strWorkGroup    
  1166.             'Adding to Domain    
  1167.             Elseif (UCase(F_strRadio)   = UCase(CONST_DOMAIN) )    then    
  1168.                 objcomputer.domainName = F_strDomain    
  1169.             End If
  1170.         'Machine belongs to Domain
  1171.         Else
  1172.             'Adding to Workgroup                                
  1173.             If (UCase(F_strRadio) = UCase(CONST_WORKGROUP)) then    
  1174.                 objComputer.workgroupName = F_strWorkGroup    
  1175.             'Adding to Domain    
  1176.             Elseif (UCase(F_strRadio)   = UCase(CONST_DOMAIN) )    then    
  1177.                 objcomputer.domainName = F_strDomain    
  1178.             End If
  1179.         End If
  1180.  
  1181.         'In XPE, to join a domain, the username has to be domain\username        
  1182.         If CONST_OSNAME_XPE = GetServerOSName() Then    
  1183.             if (UCase(F_strRadio)   = UCase(CONST_DOMAIN) )  then                        
  1184.                 if InStr(F_strUserName, "\") = 0 Then        
  1185.                     F_strUserName = F_strDomain & "\" & F_strUserName        
  1186.                 End If
  1187.             End If
  1188.         End If
  1189.  
  1190.         'Logon information(Username & Password)
  1191.         objComputer.LogonInfo F_strUserName,F_strPassword               
  1192.         
  1193.         'Checking for logoninfo method failure
  1194.         If Err.number <> 0 Then
  1195.             SA_SetErrMsg L_LOGONINFOFAILED_ERRORMESSAGE &_
  1196.                         "("& Hex(Err.Number) &")"
  1197.             objComputer = nothing
  1198.             Exit Function
  1199.         End If
  1200.     
  1201.         Set    objComputer = nothing
  1202.                 
  1203.         SetSystemSettings = True
  1204.                     
  1205.     End Function    
  1206.     
  1207.     '---------------------------------------------------------------------
  1208.     'Function name:        ApplySettings
  1209.     'Description:        Applies the settings for the System
  1210.     'Input Variables:    objSystem 
  1211.     'Output Variables:    None
  1212.     'Return Values:        Returns (True/False)
  1213.     'Global Variables:    In:L_(*)
  1214.     '                    In:N_(*)
  1215.     '---------------------------------------------------------------------
  1216.     Function ApplySettings(objSystem)
  1217.         on error resume next
  1218.         Err.Clear
  1219.         
  1220.         Dim errorcode
  1221.         Dim strErrorMessage
  1222.  
  1223.         ApplySettings = FALSE
  1224.         
  1225.         SA_TraceOut "ID_PROP", "Beginning ApplySettings"
  1226.         
  1227.         If ( Err.Number <> 0 ) Then
  1228.             SA_TraceOut "ID_PROP", "Precondition assert failed. Err.Number != 0 " + CStr(Hex(Err.Number))
  1229.         End If
  1230.         
  1231.         'Apply System Settings using ComObject 
  1232.         objSystem.Apply(1)
  1233.                         
  1234.         errorCode = Err.Number
  1235.         
  1236.         If errorCode = 0 Then
  1237.             
  1238.             If ( G_bAppleTalkInstalled ) Then    'If AppleTalk service installed 
  1239.                 
  1240.             'Function call to set the servername in the regisrty 
  1241.                 If not IsSetServerNameInRegistry(CONST_APPLETALK_REGKEYPATH,"ServerName",F_strAppleTalkName) Then
  1242.                     ApplySettings = False
  1243.                     Exit function    
  1244.                 End If    
  1245.             End If    ' end of If ( G_bAppleTalkInstalled ) Then
  1246.         
  1247.             If ( G_bNetWareInstalled ) Then    'If Netware service installed 
  1248.                     
  1249.                 'Function call to set the servername in the regisrty 
  1250.                 If not IsSetServerNameInRegistry(CONST_NETWARE_REGKEYPATH,"ComputerName",F_strNetWareName) Then
  1251.                     ApplySettings = False
  1252.                     Exit function        
  1253.                 End If    
  1254.                     
  1255.             End If    ' end of If ( G_bNetWareInstalled ) Then    
  1256.                             
  1257.             ApplySettings = TRUE
  1258.             
  1259.         Else
  1260.         
  1261.             ApplySettings = FALSE
  1262.         
  1263.             SA_TraceOut "ID_PROP", "objSystem.Apply(1) failed: " + CStr(Hex(errorCode))
  1264.             
  1265.             Select Case errorCode
  1266.         
  1267.                 Case N_UNEXPECTED_COMPUTERNAMEERROR
  1268.                     strErrorMessage = L_COMPUTERNAME_INVALID_ERRORMESSAGE
  1269.                     
  1270.                 Case N_DUPLICATECOMPUTERNAME_ERRNO1
  1271.                     strErrorMessage = L_COMPUTERNAME_INUSE_ERRORMESSAGE
  1272.                     
  1273.                 Case N_DUPLICATECOMPUTERNAME_ERRNO2
  1274.                     strErrorMessage = L_COMPUTERNAME_INUSE_ERRORMESSAGE
  1275.                                     
  1276.                 Case N_INVALIDDOMAIN_ERRNO
  1277.                     strErrorMessage = L_INVALIDDOMAINNAME_ERRORMESSAGE
  1278.                                     
  1279.                 Case N_INVALIDCREDENTIALS_ERRNO
  1280.                     strErrorMessage = L_DOMAINUSERINVALIDCREDENTIALS_ERRORMESSAGE
  1281.                                     
  1282.                 Case N_DOMAININVALIDDOMAIN_ERRNO
  1283.                     strErrorMessage = L_DOMAINUSERINVALIDCREDENTIALS_ERRORMESSAGE
  1284.                                     
  1285.                 Case N_DOMAININVALIDDOMAINPERMISSIONDENIES_ERRNO
  1286.                     strErrorMessage = L_DOMAINUSERINVALIDCREDENTIALS_ERRORMESSAGE
  1287.  
  1288.                 Case N_DNSNAMEINVALID_ERRNO
  1289.                     strErrorMessage = L_INVALIDDNSNAME_ERRORMESSAGE
  1290.                     
  1291.                 Case N_DOMAINNAMESYSTAX_ERRNO
  1292.                     strErrorMessage = L_DOMAINNAMESYNTAX_ERRORMESSAGE    
  1293.  
  1294.                 Case Else
  1295.                     strErrorMessage = L_CHANGESYSTEMSETTINGSFAILED_ERRORMESSAGE
  1296.                                     
  1297.             End Select
  1298.             
  1299.             strErrorMessage = strErrorMessage & " ("& Hex(errorCode) &")"
  1300.             SA_SetErrMsg strErrorMessage
  1301.         End If
  1302.     
  1303.     End Function
  1304.     
  1305.     
  1306.     '------------------------------------------------------------------------
  1307.     'Subroutine name:    IsRestartReq
  1308.     'Description:        To check if restart required or not
  1309.     'Input Variables:    objSystem
  1310.     'Ouput Variables:    None    
  1311.     'Return Values:        True/False
  1312.     'Global Variables:  L_ERRORINISREBOOT_ERRORMESSAGE, F_strRebootState
  1313.     '                 :    L_CHANGESYSTEMSETTINGSFAILED_ERRORMESSAGE    
  1314.     '------------------------------------------------------------------------
  1315.     Function IsRestartReq(objSystem)
  1316.         On Error Resume Next
  1317.         Err.Clear
  1318.         
  1319.         Dim nIsRestartReq
  1320.         Dim strReturnURL
  1321.         Dim strMessage
  1322.                 
  1323.         strReturnURL = "RebootSys.asp"            
  1324.                 
  1325.         'Is Restart Required 
  1326.         nIsRestartReq = objSystem.IsRebootRequired(strMessage)
  1327.         
  1328.         If Err.Number <> 0 Then
  1329.             SA_SetErrMsg L_ERRORINISREBOOT_ERRORMESSAGE &_
  1330.                             "("& Hex(Err.Number) &")"
  1331.             objSystem = nothing
  1332.             IsRestartReq = False
  1333.             Exit Function
  1334.         End If
  1335.         
  1336.         '
  1337.         ' If restart not required for this change
  1338.         If (NOT nIsRestartReq) Then
  1339.             ' Make sure the last attempt did not require a reboot
  1340.             If (UCase(F_strRebootState) = UCase(CONST_YES)) Then
  1341.                 SA_TraceOut "ID_PROP", "Cached reboot state being set"
  1342.                 nIsRestartReq = 1
  1343.             End If
  1344.         End If
  1345.                 
  1346.         If nIsRestartReq Then    'If restart required then assign all the 
  1347.             SA_TraceOut "ID_PROP", "Reboot is required"
  1348.             
  1349.             F_strRebootState = CONST_YES
  1350.             
  1351.             SA_TraceOut "ID_PROP", "Calling ApplySettings"
  1352.                                     
  1353.             If ApplySettings(objSystem) = TRUE Then    'Calling the applysettings method
  1354.                 SA_TraceOut "ID_PROP", "Redirecting to RebootSys.asp"
  1355.                 'Redirecting  to reboot page
  1356.                 Call SA_MungeURL(strReturnURL,"Tab1",getTab1())
  1357.                 Call SA_MungeURL(strReturnURL,"Tab2",getTab2())
  1358.                 Call SA_MungeURL(strReturnURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
  1359.                 Response.Redirect strReturnURL
  1360.                                 
  1361.             Else
  1362.                 SA_TraceOut "ID_PROP", "ApplySettings failed "
  1363.                 objSystem = nothing
  1364.                 Exit Function
  1365.             End If
  1366.  
  1367.         Else
  1368.             SA_TraceOut "ID_PROP", "Reboot is NOT required"
  1369.             objSystem.Apply(1)    'Applying the settings to object
  1370.             If Err.Number <> 0 Then
  1371.                 SA_SetErrMsg L_CHANGESYSTEMSETTINGSFAILED_ERRORMESSAGE &_
  1372.                                  "("& Hex(Err.Number) &")"
  1373.                 IsRestartReq = False                 
  1374.                 objSystem = nothing
  1375.                 Exit Function
  1376.             End If
  1377.         End If
  1378.         IsRestartReq = True
  1379.         
  1380.     End Function
  1381.     
  1382.     
  1383.     '-----------------------------------------------------------------------
  1384.     'Subroutine name:    GetAppleTalkNetWareSettings
  1385.     'Description:        To get AppleTalk and NetWare Settings from the 
  1386.     '                    Registry 
  1387.     'Input Variables:    G_bAppleTalkInstalled, G_bNetWareInstalled
  1388.     '                    F_strDeviceName
  1389.     'Ouput Variables:    F_strNetWareName, F_strAppleTalkName
  1390.     'Return Values:        None
  1391.     'Global Variables:  G_bAppleTalkInstalled, G_bNetWareInstalled, 
  1392.     '                    F_strAppleTalkName, F_strNetWareName, F_strDeviceName
  1393.     '------------------------------------------------------------------------
  1394.     Function GetAppleTalkNetWareSettings
  1395.         On Error Resume Next
  1396.         Err.Clear
  1397.         
  1398.         Dim strPath
  1399.         Dim strServerName
  1400.         Dim objAppleNetwareRegistry
  1401.         
  1402.         GetAppleTalkNetWareSettings = False
  1403.         
  1404.         If G_bAppleTalkInstalled = True or G_bNetWareInstalled = True Then
  1405.  
  1406.             set objAppleNetwareRegistry = RegConnection()
  1407.             If Err.number <> 0 then 
  1408.                 SA_SetErrMsg L_REGISTRYCONNECTIONFAIL_ERRORMESSAGE & "(" & Err.Number & ")"
  1409.                 Exit Function
  1410.             End If
  1411.             
  1412.             If G_bAppleTalkInstalled = True Then
  1413.                 strPath = "SYSTEM\CurrentControlSet\Services\MacFile\Parameters"    
  1414.                 strServerName = getRegkeyvalue(objAppleNetwareRegistry,strPath,"ServerName",CONST_STRING)
  1415.                 
  1416.                 'Checking for the AppleTalk servername 
  1417.                 If strServerName = "" Then    
  1418.                     F_strAppleTalkName = F_strDeviceName 'if null assign the machine name itself
  1419.                 Else
  1420.                     F_strAppleTalkName = strServerName   'Get it from the registry
  1421.                 End IF
  1422.             End If
  1423.             
  1424.             If G_bNetWareInstalled = True Then
  1425.                 strPath = "SYSTEM\CurrentControlSet\Services\FPNW\Parameters"    
  1426.                 strServerName = getRegkeyvalue(objAppleNetwareRegistry,strPath,"ComputerName",CONST_STRING)
  1427.                 
  1428.                 'Checking for the Netware servername 
  1429.                 If strServerName = "" Then    
  1430.                     F_strNetWareName = F_strDeviceName & "_NW" 'if null assign the machine name itself
  1431.                 Else
  1432.                     F_strNetWareName = strServerName 'Get it from the registry
  1433.                 End IF
  1434.                 
  1435.             End If
  1436.             
  1437.         End If            
  1438.         GetAppleTalkNetWareSettings = True
  1439.         
  1440.     End Function 
  1441.     
  1442.     '-----------------------------------------------------------------------
  1443.     'Function:            IsSetServerNameInRegistry
  1444.     'Description:        To set Server names like AppleTalk and NetWare in Registry 
  1445.     'Input Variables:    strRegkeyPath    -Path 
  1446.     '                    strKeyName        -KeyName
  1447.     '                    strValue        -Keyvalue
  1448.     'Ouput Variables:    
  1449.     'Return Values:        TRUE/FALSE
  1450.     'Global Variables:  In:L_(*)
  1451.     '------------------------------------------------------------------------
  1452.     Function IsSetServerNameInRegistry(strRegkeyPath , strKeyName , strValue  )
  1453.         On Error Resume Next
  1454.         Err.Clear
  1455.         
  1456.         Dim objRegistry
  1457.         Dim nReturnValue 
  1458.         
  1459.         IsSetServerNameInRegistry=TRUE
  1460.         
  1461.         Set objRegistry = RegConnection()
  1462.         
  1463.         If Err.number <> 0 then 
  1464.             SA_SetErrMsg L_REGISTRYCONNECTIONFAIL_ERRORMESSAGE 
  1465.             Exit Function
  1466.         End If
  1467.         nReturnValue= updateRegkeyvalue(objRegistry , strRegkeyPath , strKeyName , strValue , CONST_STRING )
  1468.         
  1469.         If nReturnValue = FAlSE Then
  1470.             IsSetServerNameInRegistry=FALSE    
  1471.         End If
  1472.     End function
  1473.  
  1474. %>
  1475.